f84202b65397b0c13ca31fe40b4a506e72edad06,src/main/java/com/demonwav/mcdev/platform/bukkit/BukkitModule.java,BukkitModule,checkUselessCancelCheck,#PsiMethodCallExpression#,195
Before Change
return null;
}
final PsiElement resolve = expression.getMethodExpression().resolve();
if (resolve == null) {
return null;
}
After Change
@Nullable
@Override
public IsCancelled checkUselessCancelCheck(@NotNull PsiMethodCallExpression expression) {
final PsiMethod method = McPsiUtil.findParent(expression, PsiMethod.class);
if (method == null) {
return null;
}
final PsiAnnotation annotation = method.getModifierList().findAnnotation(BukkitConstants.HANDLER_ANNOTATION);
if (annotation == null) {
return null;
}
// We are in an event method
final PsiAnnotationMemberValue annotationMemberValue = annotation.findAttributeValue("ignoreCancelled");
if (!(annotationMemberValue instanceof PsiLiteralExpression)) {
return null;
}
final PsiLiteralExpression value = (PsiLiteralExpression) annotationMemberValue;
if (!(value.getValue() instanceof Boolean)) {
return null;
}
final boolean ignoreCancelled = (Boolean) value.getValue();
// If we aren't ignoring cancelled then any check for event being cancelled is valid
if (!ignoreCancelled) {
return null;
}
final PsiReferenceExpression methodExpression = expression.getMethodExpression();
final PsiExpression qualifierExpression = methodExpression.getQualifierExpression();
final PsiElement resolve = methodExpression.resolve();
if (qualifierExpression == null) {
return null;
}
if (resolve == null) {